package com.lzj.server.common.service;

import com.alibaba.dashscope.embeddings.TextEmbeddingResult;
import com.lzj.server.entity.video.VideoLibrary;

import java.util.List;

public interface DashScopeEmbeddingService {

    /**
     * 保存视频的向量信息。
     * @param videoLibrary 视频向量信息
     * @return 视频向量信息的ID
     */
    Long saveEmbeddings(Long videoLibrary);


    /**
     * 根据文本返回对应的向量列表。
     *
     * @param texts 待计算向量的文本集合
     * @return TextEmbeddingResult
     */
    TextEmbeddingResult getEmbeddings(List<String> texts, String model, int dimension);

    /**
     * 根据文本返回对应的向量列表 - 按照限制分批次发送 防止单次请求过大
     * @param inputs 待计算向量的文本集合
     * @param batchSize 每批次的文本数量
     * @param model 模型名称 如：text-embedding-v4
     * @param dimension 向量维度 如 ：1024
     * @return TextEmbeddingResult
     */
    TextEmbeddingResult getBatchEmbeddings(List<String> inputs, int batchSize, String model, int dimension);
}
